// 云函数入口文件
const cloud = require('wx-server-sdk')

// 云函数初始化，必须放在第一个执行
cloud.init({
  // API 调用都保持和云函数当前所在环境一致
  env: cloud.DYNAMIC_CURRENT_ENV
})

// 引入数据库实例
const db = cloud.database()
const MAX_LIMIT = 100

/**
 * 新增类目
 * args#name
 */
async function addCategory(args) {
  const res = await db.collection("category").add({
    data: {name: args.name}
  });
  return res;
}

/**
 * 修改类目
 * args#_id
 * args#name
 */
async function updateCategory(args) {
  const res = db.collection("category").doc(args._id).update({
    data:{
      name: args.name
    }
  });
  return res;
}

/**
 * 删除类目
 * args#_id
 */
async function delCategory(args) {
  const res = db.collection("category").doc(args._id).remove();
  return res;
}

// 查询所有类目
async function queryList() {
  const res = await db.collection("category").get();
  return res;
}


// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const {method, args} = event;

  let res = undefined;
  if(method === "queryList") {
    res = await queryList();
  }else if(method === "addCategory") {
    res = await addCategory(args);
  }else if(method === "updateCategory") {
    res = await updateCategory(args);
  }else if(method === "delCategory") {
    res = await delCategory(args);
  }
  
  return {
    rstData: res,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}